iT邦幫忙

2022 iThome 鐵人賽

DAY 3
0
Mobile Development

從零開始的Swift開發心路歷程2系列 第 3

【從零開始的Swift開發心路歷程2-Day3】簡單的FMDB練習(2)-建立資料庫及資料表

  • 分享至 

  • xImage
  •  

昨天講完了安裝FMDB的流程
今天就來介紹如何建立資料表以及資料庫吧
這次會用一個簡單的個人資料表範例來進行資料庫的CRUD操作
首先要先創建一個NSObject的類別來宣告要存進資料庫裡的資料

class Resume:NSObject{
    var id = UUID().uuidString // 每筆資料的唯一識別碼
    var name : String // 姓名
    var gender : Bool // 性別
    var age : Int //年齡
    
    init(id : String, name : String, gender : Bool, age : Int) {
        self.id = id
        self.name = name
        self.gender = gender
        self.age = age
    }
}

接著再創建一個NSObject類別來宣告FMDB的確認是否成功連到資料庫及建立資料表function
!!記得要在該swift檔中import FMDB!!

class Database : NSObject{
    
    static let shared = Database()
    
    var fileName: String = "Resume.db" // 資料庫名稱
    var filePath: String = "" // 資料庫路徑
    var database: FMDatabase!
    
    private override init() {
        super.init()
        // 取得資料庫在Documents中的路徑
        self.filePath = NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.documentDirectory, FileManager.SearchPathDomainMask.userDomainMask, true)[0] + "/" + self.fileName
        print("filePath: \(self.filePath)")
    }
    
    deinit {
        print("deinit: \(self)")
    }
    
    // 判斷是否成功連線至資料庫
    func connectDB() -> Bool {
        var isConnect: Bool = false
        self.database = FMDatabase(path: self.filePath)
        if self.database != nil {
            if self.database.open() {
                isConnect = true
            } else {
                print("未連線至資料庫")
            }
        }
        return isConnect
    }
    
    // 建立資料表
    func createTable() {
        let fileManager: FileManager = FileManager.default
        // 判斷Documents是否存在該db檔
        if !fileManager.fileExists(atPath: filePath) {
            if self.connectDB() {
                // 創建資料表的SQL語法
                let createResumeTable = "CREATE TABLE RESUME(id Varchar(50) NOT NULL PRIMARY KEY,name Varchar(30) NOT NULL,age integer NOT NULL)"
                self.database.executeStatements(createResumeTable)
                print("成功建立資料表於\(self.filePath)")
            }
        } else {
            print("檔案已存在於\(self.filePath)")
        }
    }
}

接著在你的App內呼叫createTable(),我自己是在初始畫面的viewDidLoad中呼叫的

如此一來就能成功建立資料庫檔案及資料表囉!

明天我們會來介紹資料庫的新增指令,那我們明天見囉!


上一篇
【從零開始的Swift開發心路歷程2-Day2】簡單的FMDB練習(1)-介紹及套件安裝
下一篇
【從零開始的Swift開發心路歷程2-Day4】簡單的FMDB練習(3)-新增資料
系列文
從零開始的Swift開發心路歷程230
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言